#include <QtGui/QGraphicsView>
#include <QtAlgorithms>

/*
 * =====================================================================================
 *        Class:  PatternView
 *  Description:  Classe que representa um visualizador de padrões
 * =====================================================================================
 */
class PatternView: public QGraphicsView
{
    Q_OBJECT

public:

    /*-----------------------------------------------------------------------------
     *  Constrói um visualizador de padrões
     *-----------------------------------------------------------------------------*/
    PatternView(QWidget *parent = 0);

    /*-----------------------------------------------------------------------------
     *  Adiciona a grip dado seu tamanho
     *-----------------------------------------------------------------------------*/
    void setGrid(uint gridSize);

    /*-----------------------------------------------------------------------------
     *  Pinta o quadrado dado pelas posições (x, y)
     *-----------------------------------------------------------------------------*/
    void set(uint x, uint y);

    /*-----------------------------------------------------------------------------
     *  Limpa o gráfico
     *-----------------------------------------------------------------------------*/
    void clear();

private:

    /*-----------------------------------------------------------------------------
     *  Cena
     *-----------------------------------------------------------------------------*/
    QGraphicsScene *scene;

    /*-----------------------------------------------------------------------------
     *  Passo em x
     *-----------------------------------------------------------------------------*/
    float stepx;

    /*-----------------------------------------------------------------------------
     *  Passo em y
     *-----------------------------------------------------------------------------*/
    float stepy;

    /*-----------------------------------------------------------------------------
     *  Tamanho do grid
     *-----------------------------------------------------------------------------*/
    uint gridSize;

};
